package com.huanuo.internetofthings.bo.jasperStatus;


import java.util.ArrayList;
import java.util.List;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *  Example类 用于查询
 
 * </p>
 *
 * @author xiebin
 * @since 2018-08-16
 */
@Data
@Builder
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
public class JasperStatusExample implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 排序规则
     */
    protected String orderByClause;

    /**
     *  结果集去重
     */
    protected boolean distinct;

    /**
     * 查询条件列表
     */
    protected List<Criteria> oredCriteria;
    
    /**
     * limit
     */
    protected String limit;

    /**
     *
     */
    public JasperStatusExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

   
    /**
     *
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     *
     */
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     *
     */
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    /**
     *
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     *
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     *
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

               
         public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
         }	
         
          public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
          }
          

          public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
          }
          

          public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
          }
           public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer  value1, Integer  value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }
                       
         public Criteria andScneIdIsNull() {
            addCriterion("scne_id is null");
            return (Criteria) this;
         }	
         
          public Criteria andScneIdIsNotNull() {
            addCriterion("scne_id is not null");
            return (Criteria) this;
          }
          

          public Criteria andScneIdEqualTo(String value) {
            addCriterion("scne_id =", value, "scneId");
            return (Criteria) this;
          }
          

          public Criteria andScneIdNotEqualTo(String value) {
            addCriterion("scne_id <>", value, "scneId");
            return (Criteria) this;
          }
           public Criteria andScneIdGreaterThan(String value) {
            addCriterion("scne_id >", value, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdGreaterThanOrEqualTo(String value) {
            addCriterion("scne_id >=", value, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdLessThan(String value) {
            addCriterion("scne_id <", value, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdLessThanOrEqualTo(String value) {
            addCriterion("scne_id <=", value, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdIn(List<String> values) {
            addCriterion("scne_id in", values, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdNotIn(List<String> values) {
            addCriterion("scne_id not in", values, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdBetween(String value1, String value2) {
            addCriterion("scne_id between", value1, value2, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdNotBetween(String  value1, String  value2) {
            addCriterion("scne_id not between", value1, value2, "scneId");
            return (Criteria) this;
        }
                
        public Criteria andScneIdLike(String value) {
            addCriterion("scne_id like", value, "scneId");
            return (Criteria) this;
        }

        public Criteria andScneIdNotLike(String value) {
            addCriterion("scne_id not like", value, "scneId");
            return (Criteria) this;
        }
       
                       
         public Criteria andSceneIsNull() {
            addCriterion("scene is null");
            return (Criteria) this;
         }	
         
          public Criteria andSceneIsNotNull() {
            addCriterion("scene is not null");
            return (Criteria) this;
          }
          

          public Criteria andSceneEqualTo(Integer value) {
            addCriterion("scene =", value, "scene");
            return (Criteria) this;
          }
          

          public Criteria andSceneNotEqualTo(Integer value) {
            addCriterion("scene <>", value, "scene");
            return (Criteria) this;
          }
           public Criteria andSceneGreaterThan(Integer value) {
            addCriterion("scene >", value, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneGreaterThanOrEqualTo(Integer value) {
            addCriterion("scene >=", value, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneLessThan(Integer value) {
            addCriterion("scene <", value, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneLessThanOrEqualTo(Integer value) {
            addCriterion("scene <=", value, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneIn(List<Integer> values) {
            addCriterion("scene in", values, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneNotIn(List<Integer> values) {
            addCriterion("scene not in", values, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneBetween(Integer value1, Integer value2) {
            addCriterion("scene between", value1, value2, "scene");
            return (Criteria) this;
        }

        public Criteria andSceneNotBetween(Integer  value1, Integer  value2) {
            addCriterion("scene not between", value1, value2, "scene");
            return (Criteria) this;
        }
                       
         public Criteria andLonIsNull() {
            addCriterion("lon is null");
            return (Criteria) this;
         }	
         
          public Criteria andLonIsNotNull() {
            addCriterion("lon is not null");
            return (Criteria) this;
          }
          

          public Criteria andLonEqualTo(String value) {
            addCriterion("lon =", value, "lon");
            return (Criteria) this;
          }
          

          public Criteria andLonNotEqualTo(String value) {
            addCriterion("lon <>", value, "lon");
            return (Criteria) this;
          }
           public Criteria andLonGreaterThan(String value) {
            addCriterion("lon >", value, "lon");
            return (Criteria) this;
        }

        public Criteria andLonGreaterThanOrEqualTo(String value) {
            addCriterion("lon >=", value, "lon");
            return (Criteria) this;
        }

        public Criteria andLonLessThan(String value) {
            addCriterion("lon <", value, "lon");
            return (Criteria) this;
        }

        public Criteria andLonLessThanOrEqualTo(String value) {
            addCriterion("lon <=", value, "lon");
            return (Criteria) this;
        }

        public Criteria andLonIn(List<String> values) {
            addCriterion("lon in", values, "lon");
            return (Criteria) this;
        }

        public Criteria andLonNotIn(List<String> values) {
            addCriterion("lon not in", values, "lon");
            return (Criteria) this;
        }

        public Criteria andLonBetween(String value1, String value2) {
            addCriterion("lon between", value1, value2, "lon");
            return (Criteria) this;
        }

        public Criteria andLonNotBetween(String  value1, String  value2) {
            addCriterion("lon not between", value1, value2, "lon");
            return (Criteria) this;
        }
                
        public Criteria andLonLike(String value) {
            addCriterion("lon like", value, "lon");
            return (Criteria) this;
        }

        public Criteria andLonNotLike(String value) {
            addCriterion("lon not like", value, "lon");
            return (Criteria) this;
        }
       
                       
         public Criteria andLatIsNull() {
            addCriterion("lat is null");
            return (Criteria) this;
         }	
         
          public Criteria andLatIsNotNull() {
            addCriterion("lat is not null");
            return (Criteria) this;
          }
          

          public Criteria andLatEqualTo(String value) {
            addCriterion("lat =", value, "lat");
            return (Criteria) this;
          }
          

          public Criteria andLatNotEqualTo(String value) {
            addCriterion("lat <>", value, "lat");
            return (Criteria) this;
          }
           public Criteria andLatGreaterThan(String value) {
            addCriterion("lat >", value, "lat");
            return (Criteria) this;
        }

        public Criteria andLatGreaterThanOrEqualTo(String value) {
            addCriterion("lat >=", value, "lat");
            return (Criteria) this;
        }

        public Criteria andLatLessThan(String value) {
            addCriterion("lat <", value, "lat");
            return (Criteria) this;
        }

        public Criteria andLatLessThanOrEqualTo(String value) {
            addCriterion("lat <=", value, "lat");
            return (Criteria) this;
        }

        public Criteria andLatIn(List<String> values) {
            addCriterion("lat in", values, "lat");
            return (Criteria) this;
        }

        public Criteria andLatNotIn(List<String> values) {
            addCriterion("lat not in", values, "lat");
            return (Criteria) this;
        }

        public Criteria andLatBetween(String value1, String value2) {
            addCriterion("lat between", value1, value2, "lat");
            return (Criteria) this;
        }

        public Criteria andLatNotBetween(String  value1, String  value2) {
            addCriterion("lat not between", value1, value2, "lat");
            return (Criteria) this;
        }
                
        public Criteria andLatLike(String value) {
            addCriterion("lat like", value, "lat");
            return (Criteria) this;
        }

        public Criteria andLatNotLike(String value) {
            addCriterion("lat not like", value, "lat");
            return (Criteria) this;
        }
       
                       
         public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
         }	
         
          public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
          }
          

          public Criteria andStatusEqualTo(String value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
          }
          

          public Criteria andStatusNotEqualTo(String value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
          }
           public Criteria andStatusGreaterThan(String value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String  value1, String  value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }
                
        public Criteria andStatusLike(String value) {
            addCriterion("status like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("status not like", value, "status");
            return (Criteria) this;
        }
       
                       
         public Criteria andYesIsNull() {
            addCriterion("yes is null");
            return (Criteria) this;
         }	
         
          public Criteria andYesIsNotNull() {
            addCriterion("yes is not null");
            return (Criteria) this;
          }
          

          public Criteria andYesEqualTo(Integer value) {
            addCriterion("yes =", value, "yes");
            return (Criteria) this;
          }
          

          public Criteria andYesNotEqualTo(Integer value) {
            addCriterion("yes <>", value, "yes");
            return (Criteria) this;
          }
           public Criteria andYesGreaterThan(Integer value) {
            addCriterion("yes >", value, "yes");
            return (Criteria) this;
        }

        public Criteria andYesGreaterThanOrEqualTo(Integer value) {
            addCriterion("yes >=", value, "yes");
            return (Criteria) this;
        }

        public Criteria andYesLessThan(Integer value) {
            addCriterion("yes <", value, "yes");
            return (Criteria) this;
        }

        public Criteria andYesLessThanOrEqualTo(Integer value) {
            addCriterion("yes <=", value, "yes");
            return (Criteria) this;
        }

        public Criteria andYesIn(List<Integer> values) {
            addCriterion("yes in", values, "yes");
            return (Criteria) this;
        }

        public Criteria andYesNotIn(List<Integer> values) {
            addCriterion("yes not in", values, "yes");
            return (Criteria) this;
        }

        public Criteria andYesBetween(Integer value1, Integer value2) {
            addCriterion("yes between", value1, value2, "yes");
            return (Criteria) this;
        }

        public Criteria andYesNotBetween(Integer  value1, Integer  value2) {
            addCriterion("yes not between", value1, value2, "yes");
            return (Criteria) this;
        }
                  }

    /**
     *
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     *
     */
    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}